Java™ is a programming language that, at the source code level, is similar to object oriented programming languages such as C++. Java language source code is compiled into an intermediate representation based on a plurality of “bytecodes” that define specific tasks. In some implementations, the bytecodes are further compiled to machine language for a particular processor. In order to speed the execution of Java language programs, some processors are specifically designed to execute some of the Java bytecodes directly. Many times, a processor that directly executes Java bytecodes is paired with a general purpose processor so as to accelerate Java program execution in a general or special purpose machine.
Interrupts are often used to signify that an event has occurred and that an action should be taken. When a Java processor receives an interrupt, native (non-Java) code instructions are used to handle interrupts. However, native code is not as dense (i.e., compact), stable, secure, suited to low power applications as Java, thus undermining performance of the processor.